From b971146da7a3becc72434e8a98615a3d8fb7ef68 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sun, 9 May 2004 06:01:57 +0000 Subject: [PATCH] In list mode, accept the same mouse/wheel bindings on the cellview as on Sun May 9 01:57:17 2004 Matthias Clasen * gtk/gtkcombobox.c (gtk_combo_box_list_button_released): In list mode, accept the same mouse/wheel bindings on the cellview as on the button. (#136967) --- ChangeLog | 8 ++++++++ ChangeLog.pre-2-10 | 8 ++++++++ ChangeLog.pre-2-6 | 8 ++++++++ ChangeLog.pre-2-8 | 8 ++++++++ gtk/gtkcombobox.c | 21 +++++++++++++++++++-- 5 files changed, 51 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 934994bba4..dfaa609df9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Sun May 9 02:01:13 2004 Matthias Clasen + + Merge from 2.4: + + * gtk/gtkcombobox.c (gtk_combo_box_list_button_released): + In list mode, accept the same mouse/wheel bindings on + the cellview as on the button. (#136967) + Sun May 9 01:25:37 2004 Matthias Clasen * gtk/gtkiconfactory.c (add_to_cache): Actually count the diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 934994bba4..dfaa609df9 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,11 @@ +Sun May 9 02:01:13 2004 Matthias Clasen + + Merge from 2.4: + + * gtk/gtkcombobox.c (gtk_combo_box_list_button_released): + In list mode, accept the same mouse/wheel bindings on + the cellview as on the button. (#136967) + Sun May 9 01:25:37 2004 Matthias Clasen * gtk/gtkiconfactory.c (add_to_cache): Actually count the diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 934994bba4..dfaa609df9 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,11 @@ +Sun May 9 02:01:13 2004 Matthias Clasen + + Merge from 2.4: + + * gtk/gtkcombobox.c (gtk_combo_box_list_button_released): + In list mode, accept the same mouse/wheel bindings on + the cellview as on the button. (#136967) + Sun May 9 01:25:37 2004 Matthias Clasen * gtk/gtkiconfactory.c (add_to_cache): Actually count the diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 934994bba4..dfaa609df9 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,11 @@ +Sun May 9 02:01:13 2004 Matthias Clasen + + Merge from 2.4: + + * gtk/gtkcombobox.c (gtk_combo_box_list_button_released): + In list mode, accept the same mouse/wheel bindings on + the cellview as on the button. (#136967) + Sun May 9 01:25:37 2004 Matthias Clasen * gtk/gtkiconfactory.c (add_to_cache): Actually count the diff --git a/gtk/gtkcombobox.c b/gtk/gtkcombobox.c index 5e02eb2df0..a3d284682c 100644 --- a/gtk/gtkcombobox.c +++ b/gtk/gtkcombobox.c @@ -2147,7 +2147,18 @@ gtk_combo_box_list_setup (GtkComboBox *combo_box) gtk_cell_view_set_background_color (GTK_CELL_VIEW (combo_box->priv->cell_view), >K_WIDGET (combo_box)->style->base[GTK_WIDGET_STATE (combo_box)]); - gtk_widget_show (combo_box->priv->cell_view_frame); + combo_box->priv->box = gtk_event_box_new (); + gtk_event_box_set_visible_window (GTK_EVENT_BOX (combo_box->priv->box), + FALSE); + + gtk_container_add (GTK_CONTAINER (combo_box->priv->cell_view_frame), + combo_box->priv->box); + + gtk_widget_show_all (combo_box->priv->cell_view_frame); + + g_signal_connect (combo_box->priv->box, "button_press_event", + G_CALLBACK (gtk_combo_box_list_button_pressed), + combo_box); } combo_box->priv->tree_view = gtk_tree_view_new (); @@ -2226,6 +2237,11 @@ gtk_combo_box_list_destroy (GtkComboBox *combo_box) 0, 0, NULL, gtk_combo_box_list_button_pressed, NULL); + g_signal_handlers_disconnect_matched (combo_box->priv->box, + G_SIGNAL_MATCH_DATA, + 0, 0, NULL, + gtk_combo_box_list_button_pressed, + NULL); /* destroy things (unparent will kill the latest ref from us) * last unref on button will destroy the arrow @@ -2245,6 +2261,7 @@ gtk_combo_box_list_destroy (GtkComboBox *combo_box) { gtk_widget_unparent (combo_box->priv->cell_view_frame); combo_box->priv->cell_view_frame = NULL; + combo_box->priv->box = NULL; } gtk_widget_destroy (combo_box->priv->tree_view); @@ -2280,7 +2297,7 @@ gtk_combo_box_list_button_pressed (GtkWidget *widget, if (ewidget == combo_box->priv->tree_view) return TRUE; - if ((ewidget != combo_box->priv->button) || + if ((ewidget != combo_box->priv->button && ewidget != combo_box->priv->box) || gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (combo_box->priv->button))) return FALSE; -- 2.30.2